﻿using System.Collections.Generic;

namespace WJP.ObjectModel
{
    /// <summary>
    /// 
    /// </summary>
    public class FreezableCloneOptions : IFreezableCloneOptions
    {
        /// <summary>
        /// 此数据用于防止循环引用对象时，进行重复的拷贝而导致溢出。
        /// </summary>
        public Dictionary<IFreezable, IFreezable> CopiedPairs { get; private set; }

        /// <summary>
        /// 是否深度复制引用对象
        /// </summary>
        public bool DeepCloneRef { get; set; }

        /// <summary>
        /// 是否复制子对象
        /// </summary>
        public bool CloneChildren { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public FreezableCloneOptions()
        {
            CopiedPairs = new Dictionary<IFreezable, IFreezable>();
        }
    }
}